#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include "form.h"
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
#include <QMessageBox>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //在构造函数里创建和初始化数据库
    //添加数据库驱动                             数据库类型  连接字
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","HD");
    db.setDatabaseName("user.db");//设置数据库路径
    if(!db.open())//打开数据库，并判断是否打开成功
    {
        qDebug()<<"open error";
    }

    //创建表格
                       //sql语句
    QString sql = QString("create table if not exists user(id integer primary key autoincrement, username ntext unique not null, password text not NULL)");
    QSqlQuery query(QSqlDatabase::database("HD"));//访问连接字为"HD"数据库    用sql语句访问数据库

    if(!query.exec(sql))//执行sql语句  并判断是否成功
    {
        qDebug()<<"create error";
    }

    tts = new QTextToSpeech(this);

    //细节优化
    this->setWindowTitle("企业实训项目（客户端）");//添加标题
    this->setWindowIcon(QIcon(":/photo/123.jpg"));//添加图标

    //管理定时器的信号与响应的槽函数  定时器时间到了会产生一个timeout的信号
    connect(&mtimer,&QTimer::timeout,this,&MainWindow::timer_fun);
    //开启定时器
    mtimer.start(1000);//1000ms产生一次信号
}

MainWindow::~MainWindow()
{
    delete ui;
}

//登录
void MainWindow::on_pushButton_clicked()
{
    QString username = ui->username->text();
    QString password = ui->password->text();

    QString sql = QString("select * from user where username='%1' and password='%2'").arg(username).arg(password);
    QSqlQuery query(sql,QSqlDatabase::database("HD"));

    if(!query.next())
    {
        QMessageBox::information(this,"登录认证","失败");
        tts->say("登录失败");
        ui->username->clear();
        ui->password->clear();
    }
    else
    {
        QMessageBox::information(this,"登录认证","成功");
        tts->say("欢迎使用！！！");
        this->close();
        Form *w = new Form();
        w->show();
    }
}


//注册
void MainWindow::on_pushButton_2_clicked()
{
    //获取文本信息
    QString username = ui->username->text();
    QString password = ui->password->text();

    QString sql = QString("insert into user(username,password) values('%1','%2');").arg(username).arg(password);
    QSqlQuery query(QSqlDatabase::database("HD"));
    if(!query.exec(sql))
    {
        QMessageBox::information(this,"注册认证","失败");
        tts->say("注册失败");
        ui->username->clear();
        ui->password->clear();

    }
    else
    {
        QMessageBox::information(this,"注册认证","成功");
        tts->say("注册成功");
    }

}

void MainWindow::timer_fun()
{
    QString time=QTime::currentTime().toString("hh:mm:ss"); //获取当前系统的实时时间，以hh:mm:ss格式解析
    ui->lcdNumber->display(time);//在数码管控件上显示时间

    QString date=QDate::currentDate().toString("yyyy-MM-dd");//获取当前系统的日期，以yyyy-MM-dd格式解析
    ui->lcdNumber_2->display(date);//在数码管控件上面显示
}
